package com.yuandian.customer.perception.service;

import com.yuandian.api.customer_perception.po.BusinessAnalysisParams;
import com.yuandian.api.customer_perception.po.BusinessComparativeAnalysisParams;
import com.yuandian.api.customer_perception.vo.BusinessOperatorOverviewVo;
import com.yuandian.api.customer_perception.vo.BusinessStepAnalysisVo;
import com.yuandian.bpm.common.core.util.R;

import java.util.List;

/**
 * 说明：业务分析service接口
 * @Author linshihe
 * @Date 2021/8/11 13:37
 */
public interface IBusinessAnalysisService {

    /**
     * 查询系统分析概况
     * @param params 系统分析请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessAnalysisOverview(BusinessAnalysisParams params);

    /**
     * 查询业务告警占比
     * @param params 系统分析请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessAlarmProportion(BusinessAnalysisParams params);

    /**
     * 查询业务指标趋势
     * @param params 分析请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessIndicatorTrend(BusinessAnalysisParams params);

    /**
     * 业务步骤分析列表
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessStepAnalysisList(BusinessAnalysisParams params);

    /**
     * 业务步骤分析列表下载
     * @param params 请求参数
     * @return 通用返回对象
     */
    List<BusinessStepAnalysisVo> queryBusinessStepAnalysisListExport(BusinessAnalysisParams params);

    /**
     * 分页查询业务操作员总览
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryBusinessOperatorOverview(BusinessAnalysisParams params);

    /**
     * 业务操作员总览下载
     * @param params 请求参数
     * @return 通用返回对象
     */
    List<BusinessOperatorOverviewVo> queryBusinessOperatorOverviewExport(BusinessAnalysisParams params);

    /**
     * 查询操作员业务办理量TOPN
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorCompleteTopN(BusinessAnalysisParams params);


    /**
     * 查询营业员办理业务告警类型分布
     * @param params 请求参数
     * @return 通用返回对象
     */
    R<Object> queryOperatorBusinessAlarm(BusinessAnalysisParams params);

    /**
     * 查询性能指标概况列表
     * @param paramsList 业务对比分析请求对象集合
     * @return 通用返回对象
     */
    R<Object> queryPerformanceIndexSurvey(List<BusinessComparativeAnalysisParams> paramsList);
}
